package com.nimitz.module.employee.mapper;

import com.nimitz.module.employee.domain.EmpPost;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 转岗 数据层
 */
public interface EmpPostMapper {
    
    /**
     * 新增转岗
     *
     * @param post 转岗
     * @return 结果
     */
    int insertPost(@Param(value = "post") EmpPost post);

    /**
     * 批量删除转岗
     *
     * @param postIds 人员id集合
     * @return 结果
     */
    int deletePostByIds(@Param(value = "updateBy") String updateBy, @Param(value = "postIds") Integer[] postIds);

    /**
     * 修改转岗
     *
     * @param post 转岗
     * @return 结果
     */
    int updatePost(@Param(value = "post") EmpPost post);

    /**
     * 根据转岗id查询转岗
     *
     * @param postId 转岗id
     * @return 转岗
     */
    EmpPost selectPostById(@Param(value = "postId") Integer postId);

    /**
     * 根据转岗id查询转岗
     *
     * @param postIds 转岗ids
     * @return 转岗
     */
    List<EmpPost> selectPostByIds(@Param(value = "postIds") Integer[] postIds);

    /**
     * 根据条件查询转岗列表（含分页）
     *
     * @param post 转岗
     * @return 转岗集合
     */
    List<EmpPost> selectPostList(@Param(value = "post") EmpPost post);

    /**
     * 批量提交
     *
     * @param updateBy     更新者
     * @param postIds 转岗ID集合
     * @return 结果
     */
    int submitPost(@Param(value = "updateBy") String updateBy, @Param(value = "postIds") Integer[] postIds);

    /**
     * 批量驳回
     *
     * @param updateBy     更新者
     * @param postIds 转岗ID集合
     * @return 结果
     */
    int rejectPost(@Param(value = "updateBy") String updateBy, @Param(value = "postIds") Integer[] postIds);

    /**
     * 批量审核
     *
     * @param updateBy     更新者
     * @param postIds 转岗ID集合
     * @return 结果
     */
    int auditPost(@Param(value = "updateBy") String updateBy, @Param(value = "postIds") Integer[] postIds);
}
